// 优先加载环境变量
require('dotenv').config();

const express = require('express');
const cors = require('cors');
const morgan = require('morgan');
const helmet = require('helmet');
const compression = require('compression');
const { notFound, errorHandler } = require('./middlewares/error.middleware');
const routes = require('./routes');

// 创建Express应用
const app = express();

// 配置中间件
app.use(cors()); // 允许跨域请求
app.use(helmet()); // 安全HTTP头
app.use(compression()); // 压缩响应
app.use(morgan('dev')); // 日志记录
app.use(express.json()); // 解析JSON请求体
app.use(express.urlencoded({ extended: true })); // 解析URL编码的请求体

// 设置API路由
app.use('/api', routes);

// 根路由
app.get('/', (req, res) => {
  res.json({
    message: '欢迎使用博客API服务',
    version: '1.0.0',
    auther: 'adnaan'
  });
});

// 404处理
app.use(notFound);

// 错误处理中间件
app.use(errorHandler);

// 设置端口
const PORT = process.env.PORT || 3000;

// 启动服务器
app.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}`);
});

module.exports = app;